//
//  ZZDate+Extension.swift
//  sina
//
//  Created by 张鹏 on 16/5/31.
//  Copyright © 2016年 ZP. All rights reserved.
//

import Foundation
// NSDateFormatter 非常消耗性能

let sharedDF = NSDateFormatter()

extension NSDate {
    //将字符串转化 '日期' 对象
    class func sinaDate(dateString: String) -> NSDate? {
        
        sharedDF.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        //指定区域 不指定 在模拟器上 可以正常运行  但是 在真机会崩溃
        sharedDF.locale = NSLocale(localeIdentifier: "en")
        //将对应的字符串转换为 NSDate
        let sinaDate = sharedDF.dateFromString(dateString)
        
        return sinaDate
    }
    
    
    
    
    /*
     刚刚(一分钟内)
     X分钟前(一小时内)
     X小时前(当天)
     ---------------------------------------------
     昨天 HH:mm(昨天)
     MM-dd HH:mm(一年内)
     yyyy-MM-dd HH:mm(更早期)
     NSCelander  日历对象  提供了非常丰富的日期处理函数
     */
    
    
    func fullDescription() -> String{
        
        //1.获取需要比较的时间和当前时间的间隔
        let cl = NSCalendar.currentCalendar()
        if cl.isDateInToday(self) {
            //当天
            let delta = Int(NSDate().timeIntervalSinceDate(self))
            if delta < 60 {
                return "刚刚"
            } else if delta < 60 * 60 {
                //在一个小时内
                return ("\(delta / 60)分钟前")
            } else {
                return ("\(delta / 3600)小时前")
            }
        } else {
            
            //实例化 日期格式化对象
            let comman = "HH:mm"
            if cl.isDateInYesterday(self) {
                //昨天
                sharedDF.dateFormat = "昨天 " + comman
            } else {
                //非昨天
                //把系统当前日期和传过来的日期对象比较 两个日起对象之间相隔多少年
                let result = cl.components(.Year, fromDate: self, toDate: NSDate(), options: [])
                if result.year == 0 {
                    //当年
                    sharedDF.dateFormat = "MM-dd " + comman
                } else {
                    //非当年
                    sharedDF.dateFormat = "yyyy-MM-dd " + comman
                }
            }
            let str = sharedDF.stringFromDate(self)
            return str
        }
    }
}

//封装微博来源
class viewModel: NSObject {
    //拿到模型里的status
    var status: ZZStatus?
    //自定义一个字符串用来接收截取的字符串
    var sourceText: String?
    
    var sourceText1 : String = "来自 "
    
    //重写init方法,拿到模型里的status给自定义的status赋值
    init(status: ZZStatus) {
        super.init()
        self.status = status
        getText()
    }
    
    func getText() {
        
        let startFlag = "\">"
        let endFlag = "</a>"
        let str = status?.source ?? ""
        let startRange = str.rangeOfString(startFlag)
        let endRange = str.rangeOfString(endFlag)
        
        if let start = startRange , end = endRange {
            let range = start.endIndex..<end.startIndex
            sourceText = str.substringWithRange(range)
            //拼接字符串
            sourceText = sourceText1 + sourceText!
        }
    }
    
}



